<?php
/**
 * Created by PhpStorm.
 * User: ownfi
 * Date: 2017-03-13
 * Time: 19:44
 */

namespace App\Services;


interface IAreaService
{
    /**
     * 省市区列表
     * @param array $wheres
     * @return mixed
     */
    public function areaList(array $wheres = []);

    /**
     * 添加区域
     * @param $title
     * @param $content
     * @param null $cat_id
     * @return mixed
     */
    public function areaAdd($parent_id,$name);

    /**
     * 编辑区域
     * @param $title
     * @param $content
     * @param null $cat_id
     * @return mixed
     */
    public function areaEdit($area_id,$parent_id,$name);

    /**
     * 删除区域
     * @param $title
     * @param $content
     * @param null $cat_id
     * @return mixed
     */
    public function areaDel($area_id);

    /**
     * 根据id获取地区面包屑
     * @param $id
     * @return mixed
     */
    public function getAreaCrumbById($id,$glue = '');

    /**
     * 获取省份id、名称键值对
     * @return mixed
     */
    public function getProvinceCouple();

    /**
     * 获取城市id、名称键值对
     * @return mixed
     */
    public function getCityCouple($provinceId);

    /**
     * 获取区县id、名称键值对
     * @return mixed
     */
    public function getDistrictCouple($cityId);

    /**
     * 根据id获取地区
     * @param $id
     * @return mixed
     */
    public function getAreaById($id);

    /**
     * 根据上一级id获取地区集合
     * @param $id
     * @return mixed
     */
    public function getAreasByParentId($id);

    /**
     * 根据id获取上一级地区
     * @param $id
     * @return mixed
     */
    public function getParentArea($id);

    /**
     * 获取所有省份集合
     * @return mixed
     */
    public function getProvinces();

    /**
     * 判断是否是省
     * @param $id
     * @return mixed
     */
    public function isProvince($id);

    /**
     * 判断是否是市
     * @param $id
     * @return mixed
     */
    public function isCity($id);

    /**
     * 判断是否是区县
     * @param $id
     * @return mixed
     */
    public function isDistrict($id);

    /**
     * 获取所有父级id、名称键值对
     * @param $id
     * @return mixed
     */
    public function getParentsCouple($id);

}